/*
 * Created: Author: Ivan Lampert / Date: Jan 26, 2015
 * 
 * Changed: $Author: ac280593@gmail.com $ / $Date: 2015-03-17 01:06:33 +0000 (Tue, 17 Mar 2015) $
 */
package com.cpm.wrapper;

import com.cpm.wrapper.exception.SystemException;
import java.io.Serializable;
import java.util.Arrays;

public final class SolidNumbers implements Serializable {
    private static final long serialVersionUID = -567750379482712681L;

    private SolidNumbers() {}
    
    public static final void positiveOnly(Integer... numbers) {
        Arrays.asList(numbers).forEach(number -> {
            if (number < 0) {
                throw  new SystemException("Número negativo encontrado, não é permitido!");
            }
        });
    }
    
    public static final void minimumAllowable(Integer min, Integer... numbers) {
        Arrays.asList(numbers).forEach(number -> {
            if(number < min){
                throw  new SystemException("Numero com o valor abaixo do permitido! "
                                            + "Valor mínimo esperado: " + min + " valor obtido: " + number);
            }
        });
    }
    
    public static final void maximumAllowed(Integer max, Integer... numbers) {
        Arrays.asList(numbers).forEach(number -> {
            if(number > max){
                throw  new SystemException("Numero com o valor maior que o permitido! "
                                            + "Valor máximo esperado: " + max + " valor obtido: " + number);
            }
        });
    }
    
}
